home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
program
/
swagd_f.zip
/
EGAVGA.SWG
/
0046_VGA ClrScr #2.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1993-05-28
|
2KB
|
61 lines
{ The following Turbo Pascal Program displays HARDWARE SCROLLinG
For 100% Compatible VGA cards,in mode $13.
I'd be grateful if anyone interested
could test this and report the results :
}
Program VGASLIDE; {requirements TP6 or higher + register-Compatible VGA
}
Uses Crt;
Var
t,slide:Word;
ch:Char;
Procedure VgaBase(Xscroll,Yscroll:Integer);
Var dum:Byte;
begin
Dec(SLIDE,(Xscroll+320*Yscroll)); { slide scrolling state }
Port[$03d4]:=13; { LO register of VGAMEM offset }
Port[$03d5]:=(SLIDE shr 2) and $FF; { use 8 bits: [9..2] }
Port[$03d4]:=12; { HI register of VGAMEM offset }
Port[$03d5]:= SLIDE shr 10; { use 6 bits [16..10] }
Dum:=Port[$03DA]; { reset to input by dummy read }
Port[$03C0]:=$20 or $13; { smooth pan = register $13 }
Port[$03C0]:=(SLIDE and 3) Shl 1; { use bits [1..0], make it 0-2-4-6
}
end;
begin {main}
Asm {inITIALIZE vga mode $13 using BIOS}
MOV AX,00013h
inT 010h
end;
SLIDE:=0;
{ draw a quick test pattern directly to video memory }
For T:= 0 to 63999 do MEM[$A000:T]:=(T mod (317 + T div 10000)) and 255;
Repeat
Vgabase(-1,-1); { scroll smoothly in UPPER LEFT direction }
Delay(14);
Until KeyPressed;
ch:=ReadKey;
Repeat
Vgabase( 1, 1); { scroll smoothly in LOWER RIGHT direction }
Delay(14);
Until KeyPressed;
ch:=ReadKey;
Asm
MOV AX,00003h {reset to Textmode}
inT 010h
end;
end.